想像你去飯店辦理入住,櫃檯會給你一張專屬你、印有飯店簽名的「卡片」。這張卡片代表你的身份,讓你下次來飯店時,只要出示它,飯店就知道你是常客,可以讓你直接進房間。
在網路上,Cookie 就像這張簽名卡片,是伺服器給瀏覽器的小小資料片段,用來辨認你是誰、記住你的資訊,讓網站知道你上次來過,讓你不用每次都重新登入或設定。
Cookie 根據「保存時間」可分為兩種:
記憶體 Cookie(Session Cookie)
只存在瀏覽器「記憶體」裡。當你關掉瀏覽器,它就會消失。通常用來暫時儲存像購物車、臨時登入的資訊.
硬碟 Cookie(Persistent Cookie)
儲存在電腦「硬碟」裡,通常會有一個設定的到期日(expires)。只要沒過期或沒刪除,關掉瀏覽器、重開機都還在。適合用來記住登入狀態、偏好設定、記住你上次的操作.
瀏覽器向伺服器發請求
瀏覽器(Client)說:「我想看這個網站!」並發送一個請求給伺服器(Server)。
伺服器回應並發送 Cookie
伺服器收到請求後,確認你是正常訪客,在回應裡附上一個 Cookie(就像那張卡片),讓瀏覽器儲存。
瀏覽器自動儲存 Cookie
Cookie 依類型存放在記憶體或硬碟。
下一次請求自動帶上 Cookie
瀏覽器自動在請求標頭裡帶著 Cookie 去跟伺服器溝通。
伺服器根據 Cookie 辨識你
伺服器看到 Cookie,就知道你是誰,可保持登入或記住設定。
Set-Cookie
指令告訴瀏覽器要存什麼 Cookie 和到期日,例如:
Set-Cookie: user=alice; Expires=Thu, 31 Dec 2025 23:59:59 GMT
Cookie: user=alice
document.cookie = "user=alice; expires=Thu, 31 Dec 2025 23:59:59 GMT";